﻿//============================================================
//write by bxl at 2021-06-18 20:51:27
//============================================================



using BCCommon;
using BCDto.CRM.BigCustomerDriver;
using BCDto.Sim.Admin.Admin;
using System.Collections.Generic;

namespace BCService.TMS.BigCustomerDriver
{
    public interface IBigCustomerDriverService
    {
        /// <summary>
        /// 添加大客户专属司机
        /// </summary>
        /// <param name="bigCustomerDriverRequestDto">大客户专属司机模型</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        BigCustomerDriverDto Add(BigCustomerDriverRequestDto bigCustomerDriverRequestDto, AdminDto admin);

        /// <summary>
        /// 批量添加大客户专属司机
        /// </summary>
        /// <param name="bigCustomerDriverRequestDtoList"></param>
        /// <param name="admin"></param>
        void AddList(List<BigCustomerDriverRequestDto> bigCustomerDriverRequestDtoList, AdminDto admin);

        /// <summary>
        /// 删除大客户专属司机
        /// </summary>
        /// <param name="bigCustomerDriverId">大客户专属司机Id</param>
        void Delete(long bigCustomerDriverId);
        /// <summary>
        /// 获取大客户专属司机
        /// </summary>
        /// <param name="bigCustomerDriverId">大客户专属司机Id</param>
        BigCustomerDriverDto GetById(long bigCustomerDriverId);

        /// <summary>
        /// 获取大客户专属司机列表 分页
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="bigCustomerId">大客户Id</param>
        /// <param name="driverName">司机名称</param>
        /// <param name="driverPhone">司机电话</param>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">页行数</param>
        /// <returns></returns>
        PageableList<BigCustomerDriverDto> GetList(AdminDto admin, long? bigCustomerId, string driverName, string driverPhone, int pageIndex, int pageSize);

        /// <summary>
        /// 获取大客户专属司机列表
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="bigCustomerId">大客户Id</param>
        /// <returns></returns>
        List<BigCustomerDriverDto> GetOnlyList(AdminDto admin, long? bigCustomerId);

        /// <summary>
        /// 修改大客户司机车型
        /// </summary>
        /// <param name="vehicleCategoryId">车型Id</param>
        /// <param name="bigCustomerDriverId">大客户专属司机Id</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        BigCustomerDriverDto UpdateVehicleCategory(int vehicleCategoryId,long bigCustomerDriverId,  AdminDto admin);
    }
}